﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using clEntidad;
using System.Data.OleDb;
using clBD;

namespace clBUS
{
    public class BUSPersona:
        BUSBase 
    {
        public BUSPersona(String cadBD):base(cadBD )  {        }
        public Persona get(String numDoc)
        {
            Persona persona = null;
            using (OleDbConnection cn = getCn()) 
            {
                BDPersona bdPersona = new BDPersona(cn);
                OleDbDataReader dr = bdPersona.get(numDoc);
                if (dr.Read())
                {
                    persona = new Persona();
                    persona.apePat = dr.GetString(0);
                    persona.apeMat = dr.GetString(1);
                    persona.nombres = dr.GetString(2);
                    persona.empresa = dr.GetString(3);
                    persona.cargo = dr.GetString(4);
                    if (!dr.IsDBNull(5))
                        persona.visitado.nombre = dr.GetString(5);
                    if (!dr.IsDBNull(6))
                        persona.visitado.ubicacion = dr.GetString(6);
                    if (!dr.IsDBNull(7))
                        persona.visitado.area = dr.GetString(7);
                    if (!dr.IsDBNull(8))
                        persona.ultimaVisita  = dr.GetInt32(8);
                    OleDbDataReader drMovil = bdPersona.getNumMovil(numDoc);
                    if (drMovil.Read())
                    {
                        persona.numMovil  = drMovil.GetString(0);
                    }

                }

            }
            return persona;
        }
        public Persona getByUltVisita(int ultVisita)
        {
            Persona persona = null;
            using (OleDbConnection cn = getCn())
            {
                OleDbDataReader dr = new BDPersona(cn).getByVisita(ultVisita);
                if (dr.Read())
                {
                    persona = new Persona();
                    persona.apePat = dr.GetString(0);
                    persona.apeMat = dr.GetString(1);
                    persona.nombres = dr.GetString(2);
                    persona.empresa = dr.GetString(3);
                    persona.cargo = dr.GetString(4);
                    if (!dr.IsDBNull(5))
                        persona.visitado.nombre = dr.GetString(5);
                    if (!dr.IsDBNull(6))
                        persona.visitado.ubicacion = dr.GetString(6);
                    if (!dr.IsDBNull(7))
                        persona.visitado.area = dr.GetString(7);
                    persona.numDoc  = dr.GetString(8);
                }
            }
            return persona;
        }

        //public void grabar(Persona persona)
        //{
        //    using (OleDbConnection cn = getCn())
        //    {
        //        BDPersona objBD = new BDPersona(cn);
        //        objBD.grabar(persona);
        //    }
        //}

        public void grabarVarios(List<Persona> personas)
        {
            using (OleDbConnection cn = getCn())
            {
                BDPersona objBDPersona = new BDPersona(cn);
                foreach (Persona elem in personas)
                {
                    objBDPersona.grabar(elem,0);
                    objBDPersona.grabarElemento("empresa", elem.empresa);
                    objBDPersona.grabarElemento("cargo", elem.cargo);
                }
            }
        }
    }
}
